package com.it.pojo;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class CompanyExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public CompanyExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andCompanyIdIsNull() {
            addCriterion("company_id is null");
            return (Criteria) this;
        }

        public Criteria andCompanyIdIsNotNull() {
            addCriterion("company_id is not null");
            return (Criteria) this;
        }

        public Criteria andCompanyIdEqualTo(String value) {
            addCriterion("company_id =", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdNotEqualTo(String value) {
            addCriterion("company_id <>", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdGreaterThan(String value) {
            addCriterion("company_id >", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdGreaterThanOrEqualTo(String value) {
            addCriterion("company_id >=", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdLessThan(String value) {
            addCriterion("company_id <", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdLessThanOrEqualTo(String value) {
            addCriterion("company_id <=", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdLike(String value) {
            addCriterion("company_id like", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdNotLike(String value) {
            addCriterion("company_id not like", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdIn(List<String> values) {
            addCriterion("company_id in", values, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdNotIn(List<String> values) {
            addCriterion("company_id not in", values, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdBetween(String value1, String value2) {
            addCriterion("company_id between", value1, value2, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdNotBetween(String value1, String value2) {
            addCriterion("company_id not between", value1, value2, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyNameIsNull() {
            addCriterion("company_name is null");
            return (Criteria) this;
        }

        public Criteria andCompanyNameIsNotNull() {
            addCriterion("company_name is not null");
            return (Criteria) this;
        }

        public Criteria andCompanyNameEqualTo(String value) {
            addCriterion("company_name =", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameNotEqualTo(String value) {
            addCriterion("company_name <>", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameGreaterThan(String value) {
            addCriterion("company_name >", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameGreaterThanOrEqualTo(String value) {
            addCriterion("company_name >=", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameLessThan(String value) {
            addCriterion("company_name <", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameLessThanOrEqualTo(String value) {
            addCriterion("company_name <=", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameLike(String value) {
            addCriterion("company_name like", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameNotLike(String value) {
            addCriterion("company_name not like", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameIn(List<String> values) {
            addCriterion("company_name in", values, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameNotIn(List<String> values) {
            addCriterion("company_name not in", values, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameBetween(String value1, String value2) {
            addCriterion("company_name between", value1, value2, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameNotBetween(String value1, String value2) {
            addCriterion("company_name not between", value1, value2, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyLegalIsNull() {
            addCriterion("company_legal is null");
            return (Criteria) this;
        }

        public Criteria andCompanyLegalIsNotNull() {
            addCriterion("company_legal is not null");
            return (Criteria) this;
        }

        public Criteria andCompanyLegalEqualTo(String value) {
            addCriterion("company_legal =", value, "companyLegal");
            return (Criteria) this;
        }

        public Criteria andCompanyLegalNotEqualTo(String value) {
            addCriterion("company_legal <>", value, "companyLegal");
            return (Criteria) this;
        }

        public Criteria andCompanyLegalGreaterThan(String value) {
            addCriterion("company_legal >", value, "companyLegal");
            return (Criteria) this;
        }

        public Criteria andCompanyLegalGreaterThanOrEqualTo(String value) {
            addCriterion("company_legal >=", value, "companyLegal");
            return (Criteria) this;
        }

        public Criteria andCompanyLegalLessThan(String value) {
            addCriterion("company_legal <", value, "companyLegal");
            return (Criteria) this;
        }

        public Criteria andCompanyLegalLessThanOrEqualTo(String value) {
            addCriterion("company_legal <=", value, "companyLegal");
            return (Criteria) this;
        }

        public Criteria andCompanyLegalLike(String value) {
            addCriterion("company_legal like", value, "companyLegal");
            return (Criteria) this;
        }

        public Criteria andCompanyLegalNotLike(String value) {
            addCriterion("company_legal not like", value, "companyLegal");
            return (Criteria) this;
        }

        public Criteria andCompanyLegalIn(List<String> values) {
            addCriterion("company_legal in", values, "companyLegal");
            return (Criteria) this;
        }

        public Criteria andCompanyLegalNotIn(List<String> values) {
            addCriterion("company_legal not in", values, "companyLegal");
            return (Criteria) this;
        }

        public Criteria andCompanyLegalBetween(String value1, String value2) {
            addCriterion("company_legal between", value1, value2, "companyLegal");
            return (Criteria) this;
        }

        public Criteria andCompanyLegalNotBetween(String value1, String value2) {
            addCriterion("company_legal not between", value1, value2, "companyLegal");
            return (Criteria) this;
        }

        public Criteria andCompanyPhoneIsNull() {
            addCriterion("company_phone is null");
            return (Criteria) this;
        }

        public Criteria andCompanyPhoneIsNotNull() {
            addCriterion("company_phone is not null");
            return (Criteria) this;
        }

        public Criteria andCompanyPhoneEqualTo(String value) {
            addCriterion("company_phone =", value, "companyPhone");
            return (Criteria) this;
        }

        public Criteria andCompanyPhoneNotEqualTo(String value) {
            addCriterion("company_phone <>", value, "companyPhone");
            return (Criteria) this;
        }

        public Criteria andCompanyPhoneGreaterThan(String value) {
            addCriterion("company_phone >", value, "companyPhone");
            return (Criteria) this;
        }

        public Criteria andCompanyPhoneGreaterThanOrEqualTo(String value) {
            addCriterion("company_phone >=", value, "companyPhone");
            return (Criteria) this;
        }

        public Criteria andCompanyPhoneLessThan(String value) {
            addCriterion("company_phone <", value, "companyPhone");
            return (Criteria) this;
        }

        public Criteria andCompanyPhoneLessThanOrEqualTo(String value) {
            addCriterion("company_phone <=", value, "companyPhone");
            return (Criteria) this;
        }

        public Criteria andCompanyPhoneLike(String value) {
            addCriterion("company_phone like", value, "companyPhone");
            return (Criteria) this;
        }

        public Criteria andCompanyPhoneNotLike(String value) {
            addCriterion("company_phone not like", value, "companyPhone");
            return (Criteria) this;
        }

        public Criteria andCompanyPhoneIn(List<String> values) {
            addCriterion("company_phone in", values, "companyPhone");
            return (Criteria) this;
        }

        public Criteria andCompanyPhoneNotIn(List<String> values) {
            addCriterion("company_phone not in", values, "companyPhone");
            return (Criteria) this;
        }

        public Criteria andCompanyPhoneBetween(String value1, String value2) {
            addCriterion("company_phone between", value1, value2, "companyPhone");
            return (Criteria) this;
        }

        public Criteria andCompanyPhoneNotBetween(String value1, String value2) {
            addCriterion("company_phone not between", value1, value2, "companyPhone");
            return (Criteria) this;
        }

        public Criteria andCompanyCertificateIsNull() {
            addCriterion("company_certificate is null");
            return (Criteria) this;
        }

        public Criteria andCompanyCertificateIsNotNull() {
            addCriterion("company_certificate is not null");
            return (Criteria) this;
        }

        public Criteria andCompanyCertificateEqualTo(String value) {
            addCriterion("company_certificate =", value, "companyCertificate");
            return (Criteria) this;
        }

        public Criteria andCompanyCertificateNotEqualTo(String value) {
            addCriterion("company_certificate <>", value, "companyCertificate");
            return (Criteria) this;
        }

        public Criteria andCompanyCertificateGreaterThan(String value) {
            addCriterion("company_certificate >", value, "companyCertificate");
            return (Criteria) this;
        }

        public Criteria andCompanyCertificateGreaterThanOrEqualTo(String value) {
            addCriterion("company_certificate >=", value, "companyCertificate");
            return (Criteria) this;
        }

        public Criteria andCompanyCertificateLessThan(String value) {
            addCriterion("company_certificate <", value, "companyCertificate");
            return (Criteria) this;
        }

        public Criteria andCompanyCertificateLessThanOrEqualTo(String value) {
            addCriterion("company_certificate <=", value, "companyCertificate");
            return (Criteria) this;
        }

        public Criteria andCompanyCertificateLike(String value) {
            addCriterion("company_certificate like", value, "companyCertificate");
            return (Criteria) this;
        }

        public Criteria andCompanyCertificateNotLike(String value) {
            addCriterion("company_certificate not like", value, "companyCertificate");
            return (Criteria) this;
        }

        public Criteria andCompanyCertificateIn(List<String> values) {
            addCriterion("company_certificate in", values, "companyCertificate");
            return (Criteria) this;
        }

        public Criteria andCompanyCertificateNotIn(List<String> values) {
            addCriterion("company_certificate not in", values, "companyCertificate");
            return (Criteria) this;
        }

        public Criteria andCompanyCertificateBetween(String value1, String value2) {
            addCriterion("company_certificate between", value1, value2, "companyCertificate");
            return (Criteria) this;
        }

        public Criteria andCompanyCertificateNotBetween(String value1, String value2) {
            addCriterion("company_certificate not between", value1, value2, "companyCertificate");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressIsNull() {
            addCriterion("company_address is null");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressIsNotNull() {
            addCriterion("company_address is not null");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressEqualTo(String value) {
            addCriterion("company_address =", value, "companyAddress");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressNotEqualTo(String value) {
            addCriterion("company_address <>", value, "companyAddress");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressGreaterThan(String value) {
            addCriterion("company_address >", value, "companyAddress");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressGreaterThanOrEqualTo(String value) {
            addCriterion("company_address >=", value, "companyAddress");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressLessThan(String value) {
            addCriterion("company_address <", value, "companyAddress");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressLessThanOrEqualTo(String value) {
            addCriterion("company_address <=", value, "companyAddress");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressLike(String value) {
            addCriterion("company_address like", value, "companyAddress");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressNotLike(String value) {
            addCriterion("company_address not like", value, "companyAddress");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressIn(List<String> values) {
            addCriterion("company_address in", values, "companyAddress");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressNotIn(List<String> values) {
            addCriterion("company_address not in", values, "companyAddress");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressBetween(String value1, String value2) {
            addCriterion("company_address between", value1, value2, "companyAddress");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressNotBetween(String value1, String value2) {
            addCriterion("company_address not between", value1, value2, "companyAddress");
            return (Criteria) this;
        }

        public Criteria andCompanyCreatetimeIsNull() {
            addCriterion("company_createTime is null");
            return (Criteria) this;
        }

        public Criteria andCompanyCreatetimeIsNotNull() {
            addCriterion("company_createTime is not null");
            return (Criteria) this;
        }

        public Criteria andCompanyCreatetimeEqualTo(Date value) {
            addCriterion("company_createTime =", value, "companyCreatetime");
            return (Criteria) this;
        }

        public Criteria andCompanyCreatetimeNotEqualTo(Date value) {
            addCriterion("company_createTime <>", value, "companyCreatetime");
            return (Criteria) this;
        }

        public Criteria andCompanyCreatetimeGreaterThan(Date value) {
            addCriterion("company_createTime >", value, "companyCreatetime");
            return (Criteria) this;
        }

        public Criteria andCompanyCreatetimeGreaterThanOrEqualTo(Date value) {
            addCriterion("company_createTime >=", value, "companyCreatetime");
            return (Criteria) this;
        }

        public Criteria andCompanyCreatetimeLessThan(Date value) {
            addCriterion("company_createTime <", value, "companyCreatetime");
            return (Criteria) this;
        }

        public Criteria andCompanyCreatetimeLessThanOrEqualTo(Date value) {
            addCriterion("company_createTime <=", value, "companyCreatetime");
            return (Criteria) this;
        }

        public Criteria andCompanyCreatetimeIn(List<Date> values) {
            addCriterion("company_createTime in", values, "companyCreatetime");
            return (Criteria) this;
        }

        public Criteria andCompanyCreatetimeNotIn(List<Date> values) {
            addCriterion("company_createTime not in", values, "companyCreatetime");
            return (Criteria) this;
        }

        public Criteria andCompanyCreatetimeBetween(Date value1, Date value2) {
            addCriterion("company_createTime between", value1, value2, "companyCreatetime");
            return (Criteria) this;
        }

        public Criteria andCompanyCreatetimeNotBetween(Date value1, Date value2) {
            addCriterion("company_createTime not between", value1, value2, "companyCreatetime");
            return (Criteria) this;
        }

        public Criteria andCompanyMarkIsNull() {
            addCriterion("company_mark is null");
            return (Criteria) this;
        }

        public Criteria andCompanyMarkIsNotNull() {
            addCriterion("company_mark is not null");
            return (Criteria) this;
        }

        public Criteria andCompanyMarkEqualTo(String value) {
            addCriterion("company_mark =", value, "companyMark");
            return (Criteria) this;
        }

        public Criteria andCompanyMarkNotEqualTo(String value) {
            addCriterion("company_mark <>", value, "companyMark");
            return (Criteria) this;
        }

        public Criteria andCompanyMarkGreaterThan(String value) {
            addCriterion("company_mark >", value, "companyMark");
            return (Criteria) this;
        }

        public Criteria andCompanyMarkGreaterThanOrEqualTo(String value) {
            addCriterion("company_mark >=", value, "companyMark");
            return (Criteria) this;
        }

        public Criteria andCompanyMarkLessThan(String value) {
            addCriterion("company_mark <", value, "companyMark");
            return (Criteria) this;
        }

        public Criteria andCompanyMarkLessThanOrEqualTo(String value) {
            addCriterion("company_mark <=", value, "companyMark");
            return (Criteria) this;
        }

        public Criteria andCompanyMarkLike(String value) {
            addCriterion("company_mark like", value, "companyMark");
            return (Criteria) this;
        }

        public Criteria andCompanyMarkNotLike(String value) {
            addCriterion("company_mark not like", value, "companyMark");
            return (Criteria) this;
        }

        public Criteria andCompanyMarkIn(List<String> values) {
            addCriterion("company_mark in", values, "companyMark");
            return (Criteria) this;
        }

        public Criteria andCompanyMarkNotIn(List<String> values) {
            addCriterion("company_mark not in", values, "companyMark");
            return (Criteria) this;
        }

        public Criteria andCompanyMarkBetween(String value1, String value2) {
            addCriterion("company_mark between", value1, value2, "companyMark");
            return (Criteria) this;
        }

        public Criteria andCompanyMarkNotBetween(String value1, String value2) {
            addCriterion("company_mark not between", value1, value2, "companyMark");
            return (Criteria) this;
        }

        public Criteria andCompanyStatusIsNull() {
            addCriterion("company_status is null");
            return (Criteria) this;
        }

        public Criteria andCompanyStatusIsNotNull() {
            addCriterion("company_status is not null");
            return (Criteria) this;
        }

        public Criteria andCompanyStatusEqualTo(Integer value) {
            addCriterion("company_status =", value, "companyStatus");
            return (Criteria) this;
        }

        public Criteria andCompanyStatusNotEqualTo(Integer value) {
            addCriterion("company_status <>", value, "companyStatus");
            return (Criteria) this;
        }

        public Criteria andCompanyStatusGreaterThan(Integer value) {
            addCriterion("company_status >", value, "companyStatus");
            return (Criteria) this;
        }

        public Criteria andCompanyStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("company_status >=", value, "companyStatus");
            return (Criteria) this;
        }

        public Criteria andCompanyStatusLessThan(Integer value) {
            addCriterion("company_status <", value, "companyStatus");
            return (Criteria) this;
        }

        public Criteria andCompanyStatusLessThanOrEqualTo(Integer value) {
            addCriterion("company_status <=", value, "companyStatus");
            return (Criteria) this;
        }

        public Criteria andCompanyStatusIn(List<Integer> values) {
            addCriterion("company_status in", values, "companyStatus");
            return (Criteria) this;
        }

        public Criteria andCompanyStatusNotIn(List<Integer> values) {
            addCriterion("company_status not in", values, "companyStatus");
            return (Criteria) this;
        }

        public Criteria andCompanyStatusBetween(Integer value1, Integer value2) {
            addCriterion("company_status between", value1, value2, "companyStatus");
            return (Criteria) this;
        }

        public Criteria andCompanyStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("company_status not between", value1, value2, "companyStatus");
            return (Criteria) this;
        }

        public Criteria andCompanyDelIsNull() {
            addCriterion("company_del is null");
            return (Criteria) this;
        }

        public Criteria andCompanyDelIsNotNull() {
            addCriterion("company_del is not null");
            return (Criteria) this;
        }

        public Criteria andCompanyDelEqualTo(Integer value) {
            addCriterion("company_del =", value, "companyDel");
            return (Criteria) this;
        }

        public Criteria andCompanyDelNotEqualTo(Integer value) {
            addCriterion("company_del <>", value, "companyDel");
            return (Criteria) this;
        }

        public Criteria andCompanyDelGreaterThan(Integer value) {
            addCriterion("company_del >", value, "companyDel");
            return (Criteria) this;
        }

        public Criteria andCompanyDelGreaterThanOrEqualTo(Integer value) {
            addCriterion("company_del >=", value, "companyDel");
            return (Criteria) this;
        }

        public Criteria andCompanyDelLessThan(Integer value) {
            addCriterion("company_del <", value, "companyDel");
            return (Criteria) this;
        }

        public Criteria andCompanyDelLessThanOrEqualTo(Integer value) {
            addCriterion("company_del <=", value, "companyDel");
            return (Criteria) this;
        }

        public Criteria andCompanyDelIn(List<Integer> values) {
            addCriterion("company_del in", values, "companyDel");
            return (Criteria) this;
        }

        public Criteria andCompanyDelNotIn(List<Integer> values) {
            addCriterion("company_del not in", values, "companyDel");
            return (Criteria) this;
        }

        public Criteria andCompanyDelBetween(Integer value1, Integer value2) {
            addCriterion("company_del between", value1, value2, "companyDel");
            return (Criteria) this;
        }

        public Criteria andCompanyDelNotBetween(Integer value1, Integer value2) {
            addCriterion("company_del not between", value1, value2, "companyDel");
            return (Criteria) this;
        }

        public Criteria andCompanyTypeIsNull() {
            addCriterion("company_type is null");
            return (Criteria) this;
        }

        public Criteria andCompanyTypeIsNotNull() {
            addCriterion("company_type is not null");
            return (Criteria) this;
        }

        public Criteria andCompanyTypeEqualTo(Integer value) {
            addCriterion("company_type =", value, "companyType");
            return (Criteria) this;
        }

        public Criteria andCompanyTypeNotEqualTo(Integer value) {
            addCriterion("company_type <>", value, "companyType");
            return (Criteria) this;
        }

        public Criteria andCompanyTypeGreaterThan(Integer value) {
            addCriterion("company_type >", value, "companyType");
            return (Criteria) this;
        }

        public Criteria andCompanyTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("company_type >=", value, "companyType");
            return (Criteria) this;
        }

        public Criteria andCompanyTypeLessThan(Integer value) {
            addCriterion("company_type <", value, "companyType");
            return (Criteria) this;
        }

        public Criteria andCompanyTypeLessThanOrEqualTo(Integer value) {
            addCriterion("company_type <=", value, "companyType");
            return (Criteria) this;
        }

        public Criteria andCompanyTypeIn(List<Integer> values) {
            addCriterion("company_type in", values, "companyType");
            return (Criteria) this;
        }

        public Criteria andCompanyTypeNotIn(List<Integer> values) {
            addCriterion("company_type not in", values, "companyType");
            return (Criteria) this;
        }

        public Criteria andCompanyTypeBetween(Integer value1, Integer value2) {
            addCriterion("company_type between", value1, value2, "companyType");
            return (Criteria) this;
        }

        public Criteria andCompanyTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("company_type not between", value1, value2, "companyType");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}